#!/usr/bin/env node
// Node CLI 应用入口文件必须要有这样的文件头
// 如果是 Linux 或者 macOS 系统下还需要修改此文件的读写权限为 755
// 具体就是通过chmod 755 cli.js 实现修改

// console.log("cli working!")

// 脚手架的工作过程：
// 1.通过命令行交互询问用户问题(inquirer模块)
// 2.根据用户回答的结果生成文件

const inquirer = require('inquirer')
const path = require('path')
const fs = require('fs')
const ejs = require('ejs')

// prompt数组每个成员就是命令行发起的问题
inquirer.prompt([
    {
        type: 'input',//输入方式
        name: 'name',//问题返回的键
        message: 'Project name?'//屏幕上给用户的提示信息
    }
])
    .then(anwsers => {
        // console.log(anwsers)   //{name:输入结果}
        // 根据用户回答的结果生成文件

        // 模板目录
        const tmplDir = path.join(__dirname, 'templates')
        // 目标目录 (命令行执行时所在目录 process.cwd())
        const destDir = process.cwd()

        // 将模板下的文件全部转换到目标目录
        fs.readdir(tmplDir, (err, files) => {
            if (err) throw err
            files.forEach(file => {
                // console.log(file)
                // 打印结果为模板目录下的文件

                // 通过模板引擎渲染文件
                ejs.renderFile(path.join(tmplDir, file), anwsers, (err, result) => {
                    if (err) throw err
                    // 将结果写入目标文件路径
                    fs.writeFileSync(path.join(destDir, file), result)
                })
            })
        })
    })
